SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[SP_TXMVTO_CNTB_I33]
/*-------------------------------------------------------------------*/                            
/*----- Empresa           : OFISIS S.A.                          ----*/                            
/*----- Cliente           : OFISIS S.A.                          ----*/                            
/*----- Sistema           : Contabilidad                         ----*/                            
/*----- Modulo            : Empresa                              ----*/        
/*----- Programa          : Ajuste por Diferencia de cambio Docs(EN LINEA 'COP') ----*/        
/*----- Nombre            : SP_TXMVTO_CNTB_I33                   ----*/                            
/*----- Script            : TXMVTO_CNTB                          ----*/                            
/*----- Desarrollado por  : pdgv                                 ----*/                            
/*----- Fecha             :                                      ----*/                            
/*----- Base de Datos     : MS SQL Server                        ----*/                            
/*----- Version BD        : 8.0                                  ----*/                            
/*-------------------------------------------------------------------*/                            
/*-------------------------------------------------------------------*/                            
/*----- Modificado 2 por : Percy Garc?a                          ----*/                            
/*----- Fecha Modifica   : 26/11/2003                            ----*/                            
/*----- Detalle Modifica : Se bas? en el procedure de Nuevo Mundo,---*/                           
/*----- se hicieron cambios para que sea en l?nea                ----*/                            
/*----- Factor de cambio respecto fecha asto, graba status st_dife_camb ----*/                                             
/*----- graba s?lo secs para el asiento existente                ----*/                                             
/*-------------------------------------------------------------------*/   
/*--------------------------------------------------------------------------*/    
/*---- Modificado 3   : Gustavo Espinoza                                ----*/    
/*---- Fecha Modificacion : 19/08/2005                                  ----*/    
/*---- Detalle    : Validacion ADC si el saldo del DOC <> 0             ----*/    
/*--------------------------------------------------------------------------*/                            
/*-------------------------------------------------------------------*/                            
/*----- Drop proc SP_TXMVTO_CNTB_I33                             ----*/                            
/*----- Grant all on SP_TXMVTO_CNTB_I33 to PUBLIC                ----*/        
/*----- SP_TXMVTO_CNTB_I33        
EXEC SP_TXMVTO_CNTB_I33  '01',1,'001','011','042','42151','VEN','01/03/2004',01,2004,                          
'P','20100003199', 'FAC', '0022-0000284868', '002', '0000000106', 1   ----*/        
/*-------------------------------------------------------------------*/        
@ISCO_EMPR           TD_VC_002,                            
@ISCO_USUA          TD_VC_008,  
@IDFE_USUA          TD_DT_001,  
@INNU_CNTB_EMPR      TD_IN_001_CONT,                            
@ISCO_UNID_CNTB      TD_VC_003,                            
@ISCO_OPRC_DIFE      TD_VC_003,                            
@ISCO_OPRC_0004      TD_VC_003,                            
@ISCO_CNTA_EMPR      TD_VC_020_CNTA,                            
@ISST_CNTA_NATU      TD_VC_003,  -- 'COM' 0 'VEN'                          
@IDFE_ASTO_CNTB      TD_DT_001,                            
@INNU_MESE           TD_IN_002_MESE,                            
@INNU_ANNO           TD_IN_004_ANNO,                            
@ISTI_AUXI_EMPR      TD_VC_001,                            
@ISCO_AUXI_EMPR      TD_VC_020,                             
@ISTI_DOCU           TD_VC_003,                            
@ISNU_DOCU           TD_VC_020,                       
@ISCO_OPRC_CNTB      TD_VC_003,                       
@ISNU_ASTO           TD_VC_010,                       
@INNU_SECU           TD_IN_002                       
     --                        with encryption       
As                            
Begin Transaction SP_TXMVTO_CNTB_I33                            
Declare                             
 @VDFE_VOUC          TD_DT_001,       
 @VDFE_CAMB          TD_DT_001,                    
 @CNIM_ORIG_SALD     TD_NU_016_004,                            
 @CNIM_SOLE_SALD     TD_NU_016_004,                        
 @CSTI_DOCU          TD_VC_003,                            
 @CSNU_DOCU          TD_VC_020,                            
 @CDFE_DOCU          TD_DT_001,                            
 @VNIM_ORIG_MVTO     TD_NU_016_004,                            
 @VNIM_SOLE_MVTO     TD_NU_016_004,                            
 @VNTO_SALD_ORIG     TD_NU_016_004,                     
 @VNTO_SALD_SOLES    TD_NU_016_004,                            
 @VNTO_AJUS          TD_NU_016_004,                            
 @VSCO_CNTA_GANA     TD_VC_020_CNTA,                            
 @VSCO_CNTA_PERD     TD_VC_020_CNTA,                            
 @VSTI_OPER          TD_VC_003,                            
 @VNTO_CNTA_GANA     TD_NU_016_004,                            
 @VNTO_CNTA_PERD     TD_NU_016_004,                            
 @VNTO_GANA_PEND     TD_NU_016_004,                            
 @VNTO_PERD_PEND     TD_NU_016_004,                            
 @VNNU_SECU          TD_IN_002,                             
 @VNNU_SECU_PEND     TD_IN_002,                             
 @VSCO_MONE_CNTB     TD_VC_003,                            
 @VDFE_DOCU          TD_DT_001,                           
 @CSTI_AUXI_EMPR     TD_VC_001,                            
 @CSCO_AUXI_EMPR     TD_VC_020,                            
 @CDFE_ASTO_0001     TD_DT_001,                            
 @VSID_GANA_CAMB     TD_VC_003,                            
 @VSID_PERD_CAMB     TD_VC_003,                            
 @VNFA_CMPR_REFE     TD_NU_015_006,                            
 @VNFA_VNTA_REFE     TD_NU_015_006,                            
 @VDFE_ASTO_CNTB     TD_DT_001,                            
 @VNFA_CAMB_DIAR     TD_NU_015_006,                            
 @VSST_CNTA          TD_VC_001,                            
 @VNFA_CMPR_CNTA     TD_NU_015_006,                            
 @VNFA_VNTA_CNTA     TD_NU_015_006,                            
 @VNFA_CMPR_CNTB     TD_NU_015_006,                            
 @VNFA_VNTA_CNTB     TD_NU_015_006,                            
 @VSCO_MONE_CNTA     TD_VC_003,                            
 @VSCO_GANA_DIFE     TD_VC_020,                            
 @VSCO_PERD_DIFE     TD_VC_020,                            
 @VSST_AUXI_EMPR     TD_VC_001,                            
 @VSTI_AUXI_DCGA     TD_VC_001,                            
 @VSCO_AUXI_DCGA     TD_VC_020,                            
 @VSTI_AUXI_DCPE     TD_VC_001,                            
 @VSCO_AUXI_DCPE     TD_VC_020,                            
 @VSST_FLAG          TD_VC_001,                            
 @VSCO_OPRC_CNTB     TD_VC_003,                            
 @VNNU_ULTI_ASTO     TD_IN_001,                            
 @VSNU_ASTO          TD_VC_010,                            
                            
---- Multimoneda                            
 @VSST_CNTA_CAMB     TD_VC_003,                            
 @VNIM_MVTO_ORI2     TD_NU_016_004,                            
 @VNFA_CAMB          TD_NU_015_006,                            
                            
 ---- Cursor CU_TXMVTO_CNTB_I10_2                            
 @CSCO_EMPR_0002     TD_VC_002,                            
 @CNNU_CNTB_EMP2     TD_IN_001_CONT,                         
 @VDFE_ASTO_CNT2     TD_DT_001,                            
 @CNTI_CAMB_0002     TD_VC_003,                            
 @CSCO_MONE_0002     TD_VC_003,                            
 @CNFA_CAMB_0002     TD_NU_015_006,                            
 @CSTI_OPER_0002     TD_VC_003,                            
 @CNIM_MVTO_ORI2     TD_NU_016_004,                            
 @CNIM_MVTO_CNT2     TD_NU_016_004,                            
 @CSTI_AUXI_EMP2     TD_VC_001,                            
 @CSCO_AUXI_EMP2     TD_VC_020,                            
 @CSTI_DOCU_0002     TD_VC_003,                            
 @CSNU_DOCU_0002     TD_VC_020,                              
 @CDFE_DOCU_0002     TD_DT_001,                            
                    
----                     
 @VSID_DIFE          TD_VC_003,                    
 @VSID_0004          TD_VC_003,                    
 @VNIM_CARG          TD_NU_016_004,      
 @VNIM_ABON          TD_NU_016_004,               
 @CDFE_DOCU_VENC     TD_DT_001,
 @VSST_ORDE_SERV        TD_VC_001,
 @VSCO_ORDE_DCGA        TD_VC_020, @VSCO_ORDE_DCPE        TD_VC_020,
 @CSCO_ORDE_SER1        TD_VC_020,                    
 @CSCO_ORDE_SERV        TD_VC_020                    
                            
--- Inicializar-------------                            
                            
 Select @VSTI_AUXI_DCGA = Null                  
 Select @VSCO_AUXI_DCGA = Null                            
 Select @VSTI_AUXI_DCPE = Null                            
 Select @VSCO_AUXI_DCPE = Null                            
               
                    
  ---------------------------                    
 -- saca saldo del documento                    
 ---------------------------                     
 Select @VSID_DIFE = ''                      
 Select @VSID_0004 = ''                      
 Select Top 1 @VSID_DIFE = IsNull(Rtrim(ID_DIFE), ''), @VSID_0004 = IsNull(Rtrim(ID_0004), '')                      
 From TTCNTB_EMPR                       
 Where CO_EMPR = @ISCO_EMPR                       
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR                       
                      
 -- NO TOMA EN CUENTA LA LINEA DE DIFERENCIA DE CAMBIO                      
Select @VNIM_CARG = IsNull( SUM( ( ROUND( ((ASCII(t1.TI_OPER)/67) * Isnull(t1.IM_MVTO_ORIG, 0)), 2))), 0),                      
       @VNIM_ABON = IsNull( SUM( ( ROUND( ((65/ASCII(t1.TI_OPER)) * Isnull(t1.IM_MVTO_ORIG, 0)), 2))), 0)                       
From TXMVTO_CNTB t1--(index = ITXMVTO_CNTB_02 )                      
Where t1.CO_EMPR = @ISCO_EMPR                      
and t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR                      
and t1.NU_ANNO  = @INNU_ANNO                      
and t1.NU_MESE  <= @INNU_MESE                      
and t1.CO_CNTA_EMPR = @ISCO_CNTA_EMPR                      
and t1.TI_AUXI_EMPR = @ISTI_AUXI_EMPR                      
and t1.CO_AUXI_EMPR = @ISCO_AUXI_EMPR                      
and t1.TI_DOCU = @ISTI_DOCU                      
and t1.NU_DOCU = @ISNU_DOCU                      
and t1.SI_MVTO_CNTB In ( 'APR', 'DIG')                      
And Not Exists (Select t2.CO_EMPR From TTIDEN_OPER t2                      
   Where t2.CO_EMPR = @ISCO_EMPR                       
   And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR                       
   And t2.ID_OPRC In (@VSID_DIFE, @VSID_0004)                      
   And t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB )                      
        
 /* SOLO SE EFECTUA DIF DE CAMBIO EN LINEA SI ES QUE ES UNA CANCELACION TOTAL*/                    
 If @VNIM_CARG - @VNIM_ABON  = 0                     
                    
Begin                     
                    
 ---------------------------                    
 -- fin saca saldo del documento                     
 ---------------------------                    
                            
 /* Selecciona las cuenta de Ganacia y Perdida */                            
 Select @VSCO_MONE_CNTB = CO_MONE,                            
 @VSID_GANA_CAMB = ID_GANA_CAMB,                            
        @VSID_PERD_CAMB = ID_PERD_CAMB                             
 From TTCNTB_EMPR                            
 Where CO_EMPR = @ISCO_EMPR                            
 and NU_CNTB_EMPR = @INNU_CNTB_EMPR                            

Select @VSCO_ORDE_DCPE = NULL
Select @VSCO_ORDE_DCGA = NULL
                            
 Select @VSST_AUXI_EMPR = 'N'                            
 Select @VSST_ORDE_SERV = 'N'                              
 Select @VSCO_CNTA_GANA = t1.CO_CNTA_EMPR,                            
        @VSST_AUXI_EMPR = t2.ST_AUXI_EMPR,
        @VSST_ORDE_SERV = t2.ST_ORDE_SERV                             
 From TTIDEN_CNTA t1, TMPLAN_ANNO t2                            
 Where t1.CO_EMPR = @ISCO_EMPR                             
 And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR                             
 And t1.ID_CNTA = @VSID_GANA_CAMB                            
 And t2.CO_EMPR = t1.CO_EMPR                            
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR                            
             
 If @VSST_AUXI_EMPR = 'S'                            
   Begin                            
     Select @VSTI_AUXI_DCGA = NullIf(Rtrim(TI_AUXI_DCGA), ''),                            
            @VSCO_AUXI_DCGA = NullIf(Rtrim(CO_AUXI_DCGA), '')                            
     From   TMPARA_CONT                            
     Where  CO_EMPR = @ISCO_EMPR                             
   End                                                      

 If @VSST_ORDE_SERV = 'S'                              
   Begin                              
     Select @VSCO_ORDE_DCGA = NullIf(Rtrim(CO_ORDE_DCGA), '')             
     From   TMPARA_CONT                              
     Where  CO_EMPR = @ISCO_EMPR                               
   End                              

 Select @VSST_AUXI_EMPR = 'N'        
 Select @VSST_ORDE_SERV = 'N'                              
 Select @VSCO_CNTA_PERD = t1.CO_CNTA_EMPR, @VSST_AUXI_EMPR = t2.ST_AUXI_EMPR,
        @VSST_ORDE_SERV = t2.ST_ORDE_SERV                             
 From TTIDEN_CNTA t1, TMPLAN_ANNO t2                            
 Where t1.CO_EMPR = @ISCO_EMPR                             
 And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR            
 And t1.ID_CNTA = @VSID_PERD_CAMB                            
 And t2.CO_EMPR = t1.CO_EMPR                            
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR                            
                            
 If @VSST_AUXI_EMPR = 'S'                            
   Begin                            
     Select @VSTI_AUXI_DCPE = NullIf(Rtrim(TI_AUXI_DCPE), ''),                            
            @VSCO_AUXI_DCPE = NullIf(Rtrim(CO_AUXI_DCPE), '')                            
     From TMPARA_CONT                            
     Where CO_EMPR = @ISCO_EMPR                             
   End                            

 If @VSST_ORDE_SERV = 'S'                              
   Begin                              
     Select @VSCO_ORDE_DCPE = NullIf(Rtrim(CO_ORDE_DCPE), '')             
     From   TMPARA_CONT                              
     Where  CO_EMPR = @ISCO_EMPR                               
   End                                
                            
---- Si hay amarre con Cuentas de Dif De cambio en la TMPLAN_EMPR. Toma esas cuentas------------                            
 Select @VSCO_GANA_DIFE = Ltrim(Rtrim(IsNull(CO_GANA_DIFE,''))),                            
        @VSCO_PERD_DIFE = Ltrim(Rtrim(IsNull(CO_PERD_DIFE,'')))                            
 From  TMPLAN_EMPR                            
 Where CO_EMPR = @ISCO_EMPR                            
 And   CO_CNTA_EMPR = @ISCO_CNTA_EMPR                            
                            
 If @VSCO_GANA_DIFE <> '' And @VSCO_PERD_DIFE <> ''                           
   Begin                            
     Select @VSCO_CNTA_GANA = @VSCO_GANA_DIFE                            
     Select @VSCO_CNTA_PERD = @VSCO_PERD_DIFE                            
   End                            
                            
/*Seccion para cuentAs que tengan Auxiliar */                            
 Select @CNIM_ORIG_SALD = 0                            
 Select @CNIM_SOLE_SALD = 0                            
 Select @VNIM_ORIG_MVTO = 0                            
 Select @VNIM_SOLE_MVTO = 0                            
 Select @VNTO_CNTA_GANA = 0                            
 Select @VNTO_CNTA_PERD = 0                            
 Select @VNTO_GANA_PEND = 0                            
 Select @VNTO_PERD_PEND = 0                            
 Select @VNTO_SALD_ORIG = 0                             
 Select @VNTO_SALD_SOLES = 0                            
 Select @VNTO_AJUS = 0                            
                             
---- Se crean tablas temporales para Multimoneda                            
---- #TWMVTO_CNT1 guarda data para la conversi>n de importe en moneda contabilidad                            
 Create table #TWMVTO_CNT1                            
 (CO_EMPR       varchar(2) NULL,                            
  NU_CNTB_EMPR  integer NULL,                            
  FE_ASTO_CNTB  datetime NULL,                        
  TI_CAMB       varchar(3) NULL,                            
  CO_MONE       varchar(3) NULL,                            
  FA_CAMB       numeric(15,6) NULL,                            
  TI_OPER       varchar(3) NULL,                            
  IM_MVTO_ORIG  numeric(16,4) NULL,                            
  IM_MVTO_CNTB  numeric(16,4) NULL,                            
  TI_AUXI_EMPR  varchar(1) NULL,                            
  CO_AUXI_EMPR  varchar(20) NULL,                            
  TI_DOCU       varchar(3) NULL,                            
  NU_DOCU       varchar(20) NULL,                            
  FE_DOCU  datetime NULL,                   
  FE_ASTO_0001  datetime NULL,               
  FE_DOCU_VENC  datetime NULL, 
  CO_ORDE_SERV  Varchar(20) NULL  )                            
                         
 ---- #TWMVTO_CNT2 guarda data para cursor CU_TXMVTO_CNTB_I10_1                            
 Create table #TWMVTO_CNT2                            
 (TI_AUXI_EMP2  varchar(1) NULL,                            
  CO_AUXI_EMP2  varchar(20) NULL,                            
  TI_DOC2       varchar(3) NULL,                            
  NU_DOC2       varchar(20) NULL,                            
  FE_DOCU       datetime NULL,                             
  TI_OPER_0002  varchar(3) NULL,                            
  IM_MVTO_ORI2  numeric(16,4) NULL,                            
  IM_MVTO_CNT2  numeric(16,4)  NULL,                           
  FE_ASTO_0001  datetime NULL,               
  FE_DOCU_VENC  datetime NULL, 
  CO_ORDE_SERV  Varchar(20) NULL)                            
                            
 ---- Borra data de tablas temporales                            
-- Delete from #TWMVTO_CNT1                            
-- Delete from #TWMVTO_CNT2                            
                            
 ---- Insert Select con las condiciones del cursor CU_TXMVTO_CNTB_I10_1                            
 Insert Into #TWMVTO_CNT1 (CO_EMPR, NU_CNTB_EMPR, FE_ASTO_CNTB, TI_CAMB,                            
 CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, TI_AUXI_EMPR,                             
 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_ASTO_0001, FE_DOCU_VENC,CO_ORDE_SERV)                            
 Select CO_EMPR, @INNU_CNTB_EMPR, FE_ASTO_CNTB,-- @VDFE_VOUC,                       
 TI_CAMB, CO_MONE,                            
 FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, TI_AUXI_EMPR,                            
 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_ASTO_CNTB, FE_DOCU_VENC,CO_ORDE_SERV                             
 From  TXMVTO_CNTB --( index = ITXMVTO_CNTB_02 )   /* (3)*/                            
 Where CO_EMPR = @ISCO_EMPR                
  And NU_CNTB_EMPR = @INNU_CNTB_EMPR                             
  And NU_ANNO = @INNU_ANNO                             
  And NU_MESE  <= @INNU_MESE                             
  And CO_CNTA_EMPR  = @ISCO_CNTA_EMPR                             
  And TI_AUXI_EMPR = @ISTI_AUXI_EMPR                             
  And CO_AUXI_EMPR = @ISCO_AUXI_EMPR                             
  And TI_DOCU = @ISTI_DOCU                             
  And NU_DOCU = @ISNU_DOCU                            
  And SI_MVTO_CNTB  = 'APR'                             
  And ((ST_DIFE_CAMB = 'N' And NU_ANNO = @INNU_ANNO And NU_MESE = @INNU_MESE)                 
  Or (NU_ANNO = @INNU_ANNO And NU_MESE < @INNU_MESE))                 
 Order By TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU                            
                            
 ---- Cursor para convertir importe original en importe moneda contabilidad                            
 Declare CU_TXMVTO_CNTB_I33_2 Cursor                            
 For                             
   Select CO_EMPR, NU_CNTB_EMPR, FE_ASTO_CNTB, TI_CAMB, CO_MONE, FA_CAMB,                            
          TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, TI_AUXI_EMPR, CO_AUXI_EMPR,                            
          TI_DOCU, NU_DOCU, FE_DOCU, FE_ASTO_0001, FE_DOCU_VENC,CO_ORDE_SERV                            
   From  #TWMVTO_CNT1                            
   Order by TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU                            
                            
 Open CU_TXMVTO_CNTB_I33_2                            
 Fetch CU_TXMVTO_CNTB_I33_2 Into @CSCO_EMPR_0002, @CNNU_CNTB_EMP2, @VDFE_ASTO_CNT2,                            
 @CNTI_CAMB_0002, @CSCO_MONE_0002, @CNFA_CAMB_0002, @CSTI_OPER_0002, @CNIM_MVTO_ORI2,                            
 @CNIM_MVTO_CNT2, @CSTI_AUXI_EMP2, @CSCO_AUXI_EMP2, @CSTI_DOCU_0002, @CSNU_DOCU_0002,                            
 @CDFE_DOCU, @CDFE_ASTO_0001, @CDFE_DOCU_VENC,@CSCO_ORDE_SER1                          
                            
 While @@Fetch_status = 0                            
   Begin           
     ---- Convierte importe original en importe moneda contabilidad                                                 
/*     Exec SP_CONV_MONE_Q01  @CSCO_EMPR_0002, @CSCO_MONE_0002, @CNNU_CNTB_EMP2, @CNTI_CAMB_0002,                            
       @ISST_CNTA_NATU, @CNFA_CAMB_0002, @VDFE_ASTO_CNT2, @CNIM_MVTO_ORI2, 'P', @VNIM_MVTO_ORI2 Output                            
                          
    If @CNIM_MVTO_ORI2 = 0.00  */    
      Select @VNIM_MVTO_ORI2 = @CNIM_MVTO_CNT2                            
                            
     ---- Inserta tabla temporal #TWMVTO_CNT2, campos serabn usados en el cursor CU_TXMVTO_CNTB_I10_1                            
Insert into #TWMVTO_CNT2 VALUES(@CSTI_AUXI_EMP2, @CSCO_AUXI_EMP2, @CSTI_DOCU_0002, @CSNU_DOCU_0002,     
 @CDFE_DOCU, @CSTI_OPER_0002, @CNIM_MVTO_ORI2, @VNIM_MVTO_ORI2, @CDFE_ASTO_0001, @CDFE_DOCU_VENC,@CSCO_ORDE_SER1  )                             
                            
 Fetch CU_TXMVTO_CNTB_I33_2 Into @CSCO_EMPR_0002, @CNNU_CNTB_EMP2, @VDFE_ASTO_CNT2,                            
   @CNTI_CAMB_0002, @CSCO_MONE_0002, @CNFA_CAMB_0002, @CSTI_OPER_0002, @CNIM_MVTO_ORI2,                            
   @CNIM_MVTO_CNT2, @CSTI_AUXI_EMP2, @CSCO_AUXI_EMP2, @CSTI_DOCU_0002, @CSNU_DOCU_0002,                            
   @CDFE_DOCU, @CDFE_ASTO_0001, @CDFE_DOCU_VENC,@CSCO_ORDE_SER1                            
 End /* While @@Fetch_status =0 */                            
           
 Close CU_TXMVTO_CNTB_I33_2                            
 Deallocate CU_TXMVTO_CNTB_I33_2                      
                             
---- Proceso normal, solo se cambio la tabla del select del cursor,                            
---- tiene las mismas columnas pero con el importe de la moneda de la contabilidad                            
------------------------------------------------------------------------------------------------------------------------------------------------                            
 Select @VSST_FLAG = 'N'                          
  -- OBTIENE EL ULTIMO SECUENCIAL                             
 Select @VSNU_ASTO = NULL            
 Select @VSNU_ASTO = Max(NU_ASTO)            
 From TXMVTO_CNTB                      
 Where CO_EMPR = @ISCO_EMPR                      
 And   NU_CNTB_EMPR = @INNU_CNTB_EMPR                      
 And   CO_UNID_CNTB = @ISCO_UNID_CNTB                      
 And   CO_OPRC_CNTB = @ISCO_OPRC_DIFE                      
 And   NU_ANNO = @INNU_ANNO                      
 And   NU_MESE = @INNU_MESE                       
 And   CO_CNTA_EMPR = @ISCO_CNTA_EMPR            
             
 If @VSNU_ASTO IS NULL             
   Begin             
     Select @VNNU_ULTI_ASTO = IsNull(NU_ULTI_ASTO,0)                
     From TCFECH_PROC                
     Where CO_EMPR = @ISCO_EMPR                
     And NU_CNTB_EMPR = @INNU_CNTB_EMPR                
     And CO_UNID_CNTB = @ISCO_UNID_CNTB                
     And CO_OPRC_CNTB = @ISCO_OPRC_DIFE                
     And NU_ANNO = @INNU_ANNO                
     And NU_MESE = @INNU_MESE                 
            
     Select @VSNU_ASTO = Convert( varchar(10), @VNNU_ULTI_ASTO + 1 )                
     Select @VSNU_ASTO = STUFF('0000000000', 11-datalength( @VSNU_ASTO ), datalength(@VSNU_ASTO ), @VSNU_ASTO )                
   End              
    
 Declare CU_TXMVTO_CNTB_I33_1 Cursor                            
 For                             
   Select   TI_DOC2, NU_DOC2, Min(FE_DOCU), TI_AUXI_EMP2, CO_AUXI_EMP2,                            
     Isnull(SUM( ( ROUND(((ASCII(TI_OPER_0002)/67)* Isnull(IM_MVTO_ORI2, 0)),2) - ROUND(( (65/ASCII(TI_OPER_0002))* Isnull(IM_MVTO_ORI2, 0) ),2))), 0),                            
     Isnull(SUM( ( ROUND(((ASCII(TI_OPER_0002)/67)* Isnull(IM_MVTO_CNT2, 0)),2) - ROUND(( (65/ASCII(TI_OPER_0002))* Isnull(IM_MVTO_CNT2, 0) ),2))), 0),                           
     Min(FE_ASTO_0001), Min(FE_DOCU_VENC),NullIf(Rtrim(Max(CO_ORDE_SERV)),'')                             
   From #TWMVTO_CNT2                            
   Group By TI_AUXI_EMP2, CO_AUXI_EMP2, TI_DOC2, NU_DOC2       
   Order By TI_AUXI_EMP2, CO_AUXI_EMP2, TI_DOC2, NU_DOC2    
                            
 Open CU_TXMVTO_CNTB_I33_1                            
 Fetch CU_TXMVTO_CNTB_I33_1 Into @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,                             
 @CNIM_ORIG_SALD, @CNIM_SOLE_SALD, @CDFE_ASTO_0001, @CDFE_DOCU_VENC,@CSCO_ORDE_SERV               
                             
 While @@Fetch_status = 0                            
   Begin                            

 -- EVALUA QUE SOLO GRABE PARA LAS CANCELACIONES YA QUE SI ES EL MISMO DIA NO HAY DIF DE CAMBIO o que el saldo en soles sea != 0             
 If (@CDFE_ASTO_0001 != @IDFE_ASTO_CNTB) Or (Abs(@CNIM_SOLE_SALD) != 0)
 Begin                           
  If @CNIM_ORIG_SALD != 0                          
   Select @VSCO_OPRC_CNTB = @ISCO_OPRC_0004               
  If @CNIM_ORIG_SALD = 0                          
   Select @VSCO_OPRC_CNTB = @ISCO_OPRC_DIFE                          
                     
 Select @VNNU_SECU = ISNULL(MAX(NU_SECU),0) + 1                      
 From TXMVTO_CNTB                      
 Where CO_EMPR = @ISCO_EMPR                      
 And   NU_CNTB_EMPR = @INNU_CNTB_EMPR                      
 And   CO_UNID_CNTB = @ISCO_UNID_CNTB                      
 And   CO_OPRC_CNTB = @VSCO_OPRC_CNTB                      
 And   NU_ANNO = @INNU_ANNO                      
 And   NU_MESE = @INNU_MESE                      
 And   NU_ASTO = @VSNU_ASTO                          
                         
/*----------CALCULO DEL FACTOR DE CAMBIO--------------------------*/                          
/* Select @VSCO_MONE_CNTA = CO_MONE                            
 From TMPLAN_EMPR                            
 Where CO_EMPR = @ISCO_EMPR       
 and CO_CNTA_EMPR = @ISCO_CNTA_EMPR                            
 And NU_ANNO = 9999                  */          
        
/*----------- Para obtener el factor de la moneda de la cuenta -------*/                            
/* SELECT @VNFA_CMPR_CNTA = FA_CMPR_OFIC, @VNFA_VNTA_CNTA = FA_VNTA_OFIC                            
 FROM TCFACT_CAMB                            
 WHERE CO_MONE = @VSCO_MONE_CNTA                            
 And   FE_CAMB = @CDFE_ASTO_0001                  */          
                            
/*------------- Para obtener el factor de la moneda de la contabilidad ----------*/                
/* SELECT @VNFA_CMPR_CNTB = FA_CMPR_OFIC, @VNFA_VNTA_CNTB = FA_VNTA_OFIC                             
 FROM TCFACT_CAMB                            
 WHERE CO_MONE = @VSCO_MONE_CNTB                            
 An        
d   FE_CAMB = @CDFE_ASTO_0001                  */          
                            
/* if @VNFA_CMPR_CNTA is NULL                            
   Select @VNFA_CMPR_CNTA = 1.00                            
             if @VNFA_VNTA_CNTA is NULL                            
   Select @VNFA_VNTA_CNTA = 1.00                            
                            
 if @VNFA_CMPR_CNTB is NULL                            
   Select @VNFA_CMPR_CNTB = 1.00                            
                            
 if @VNFA_VNTA_CNTB is NULL                            
   Select @VNFA_VNTA_CNTB = 1.00                         
                            
 Select @VNFA_CMPR_REFE = @VNFA_CMPR_CNTA / @VNFA_CMPR_CNTB                            
 Select @VNFA_VNTA_REFE = @VNFA_VNTA_CNTA / @VNFA_VNTA_CNTB                  */          
                         
/*-------------------------------------------------------------------------------*/                            
/* If @VNFA_CMPR_REFE IS NULL                            
  Select @VNFA_CMPR_REFE = 1.00                            
                            
 If @VNFA_VNTA_REFE IS NULL                            
  Select @VNFA_VNTA_REFE = 1.00                            
                          
 Select @VSST_FLAG = 'S'                */          
                          
-- End                           
                          
/*----------FIN CALCULO DEL FACTOR DE CAMBIO--------------------------*/                 
                          
     Select @VNTO_SALD_ORIG = 0                            
     Select @VNTO_SALD_SOLES  = 0                            
     Select @VNTO_AJUS = 0                            
     Select @VNTO_SALD_ORIG = ROUND(@CNIM_ORIG_SALD,2)                            
     Select @VNTO_SALD_SOLES  = ROUND(@CNIM_SOLE_SALD,2)                            
                                               
     Select @VNTO_AJUS = ROUND(@VNTO_SALD_ORIG,2) - ROUND(@VNTO_SALD_SOLES,2)                            
        
     If @VNTO_AJUS != 0.00                            
       Begin                             
         If( @VNTO_SALD_ORIG > 0.00 ) And ( @VNTO_SALD_SOLES > 0.00 )                             
           Begin                               
             Select @VNTO_AJUS = ROUND(@VNTO_SALD_SOLES,2) - ROUND(@VNTO_SALD_ORIG,2)                            
                                  
 If @VNTO_AJUS > 0.00                            
               Begin                              
                            
                  -- @IDFE_ASTO_CNTB EL LUGAR DE  @VDFE_VOUC                            
                 Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + ROUND(@VNTO_AJUS,2)                            
                 /*Comentario : Insercion del Asiento de Ajuste*/                            
                 Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,                            
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,   
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,                             
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB,                             
                 FA_CAMB_DIAR,  CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC,         
                 ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV )                            
                 Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
                 @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                            
                 'ABO', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR','  ', 'N', 'N', 'S', 1.000000,                       
                 @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC, 
                 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
                 If @@ERROR != 0                             
                   Begin                             
                     Close CU_TXMVTO_CNTB_I33_1                            
                     Deallocate CU_TXMVTO_CNTB_I33_1                            
                     Rollback Tran                         
                     Return                            
                   End                            
                 Select @VNNU_SECU = @VNNU_SECU + 1                            
               End /* If @VNTO_AJUS > 0 */                            
                            
             If @VNTO_AJUS < 0.00                            
               Begin                             
                 /*Comentario : Insercion del Asiento de Ajuste*/                            
                Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,                            
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU,FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,                            
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU,  FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,                            
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB,                            
                 FA_CAMB_DIAR, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC,         
                 ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
                Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
                 @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,'PAC', @VSCO_MONE_CNTB, 1.000000,                             
                 'CAR', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO','APR', '  ', 'N', 'N', 'S', 1.000000,                       
                 @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC, 
                 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
                 If @@ERROR != 0                            
                   Begin                             
                     Close CU_TXMVTO_CNTB_I33_1     
                     Deallocate CU_TXMVTO_CNTB_I33_1                            
                     Rollback Tran                             
                     Return                            
                   End                            
                 Select @VNNU_SECU = @VNNU_SECU + 1                            
                 Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - abs(ROUND(@VNTO_AJUS,2))                            
               End /* If @VNTO_AJUS < 0 */                            
           End  /* If( @VNTO_SALD_ORIG > 0 ) And ( @VNTO_SALD_SOLES > 0 ) */                            
                               
         If( @VNTO_SALD_ORIG > 0.00 ) And ( @VNTO_SALD_SOLES < 0.00 )                            
           Begin                            
             Select @VNTO_AJUS = abs(ROUND(@VNTO_SALD_SOLES,2)) + ROUND(@VNTO_SALD_ORIG,2)                            
             If @VNTO_AJUS > 0.00                            
               Begin                            
                 /*Comentario : Insercion del Asiento de Ajuste */                            
                 Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,                            
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,                           
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,                            
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB,                              
                 FA_CAMB_DIAR, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC,         
   ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
                 Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
                 @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB,                            
                 1.000000, 'CAR', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S', 1.000000,                       
   @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC, 'S', 
                 @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
                 If @@ERROR != 0                                 
                   Begin                             
                     Close CU_TXMVTO_CNTB_I33_1                            
                     Deallocate CU_TXMVTO_CNTB_I33_1              
     Rollback Tran              
                     Return                            
                   End                            
                 Select @VNNU_SECU = @VNNU_SECU + 1                            
                 Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - ROUND(@VNTO_AJUS,2)                            
       End /* If @VNTO_AJUS > 0 */                            
                                     
             If @VNTO_AJUS < 0.00                            
               Begin                      
                 Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + abs(ROUND(@VNTO_AJUS,2))                            
     /*Comentario : Insercion del Asiento de Ajuste*/                            
                 Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,                            
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,                            
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU,FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,                            
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB,                              
                 FA_CAMB_DIAR, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC,         
   ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)        
              Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
                 @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,'PAC', @VSCO_MONE_CNTB, 1.000000,                            
                 'ABO', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR','  ', 'N', 'N', 'S', 1.000000,                       
                 @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC, 
                 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
                 If @@ERROR != 0                                 
                   Begin                             
          Close CU_TXMVTO_CNTB_I33_1                            
                     Deallocate CU_TXMVTO_CNTB_I33_1                            
                     Rollback Tran                             
                     Return                            
                   End            
                 Select @VNNU_SECU = @VNNU_SECU + 1                            
               End /* If @VNTO_AJUS < 0 */                            
           End /*If( @VNTO_SALD_ORIG > 0 ) And ( @VNTO_SALD_SOLES < 0 ) */                            
                            
         If( @VNTO_SALD_ORIG < 0.00 ) And ( @VNTO_SALD_SOLES > 0.00 )                            
           Begin                            
             Select @VNTO_AJUS =  (0.00 - ROUND(@VNTO_SALD_SOLES,2)) + ROUND(@VNTO_SALD_ORIG,2)                            
             If @VNTO_AJUS > 0.00                            
               Begin                            
               /*Comentario : Insercion del Asiento de Ajuste*/                            
               Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                            
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB,                            
               DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
               CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC, 
               ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
              Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
               @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                            
               'CAR', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S', 1.000000,                       
        @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC,
        'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
               If @@ERROR != 0                                 
                 Begin                             
                   Close CU_TXMVTO_CNTB_I33_1                            
                   Deallocate CU_TXMVTO_CNTB_I33_1                            
                   Rollback Tran                             
                   Return                            
                 End                            
               Select @VNNU_SECU = @VNNU_SECU + 1                            
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - ROUND(@VNTO_AJUS,2)                                
             End /* If @VNTO_AJUS > 0 */               
                            
           If @VNTO_AJUS < 0.00                            
             Begin                            
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + abs(ROUND(@VNTO_AJUS,2))                            
               /*Comentario : Insercion del Asiento de Ajuste*/             
               Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                     
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB,                            
               DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
        CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC, 
        ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
               @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                            
               'ABO', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S', 1.000000,         
        @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC, 'S',
        @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
               If @@ERROR != 0                                 
                 Begin                             
                   Close CU_TXMVTO_CNTB_I33_1                            
        Deallocate CU_TXMVTO_CNTB_I33_1                            
                   Rollback Tran                             
                   Return                            
        End                            
               Select @VNNU_SECU = @VNNU_SECU + 1                            
             End /* If @VNTO_AJUS < 0      */                            
         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLES > 0 )  */            
                            
       If( @VNTO_SALD_ORIG < 0.00 ) And ( @VNTO_SALD_SOLES < 0.00 )                            
         Begin                            
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLES,2) - ROUND(@VNTO_SALD_ORIG,2)                            
     If @VNTO_AJUS > 0.00                   
             Begin                            
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + ROUND(@VNTO_AJUS,2)                            
               /*Comentario : Insercion del Asiento de Ajuste*/                            
               Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                            
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,                            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
        CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC, 
        ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
              Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
               @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                            
               'ABO', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR',  '  ', 'N', 'N', 'S', 1.000000,                       
        @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC, 
        'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
               If @@ERROR != 0                                 
               Begin                             
                 Close CU_TXMVTO_CNTB_I33_1                            
                 Deallocate CU_TXMVTO_CNTB_I33_1                            
 Rollback Tran                             
                 Return                         
               End                            
               Select @VNNU_SECU = @VNNU_SECU + 1                            
             End /* If @VNTO_AJUS > 0 */                            
                            
           If @VNTO_AJUS < 0.00                            
             Begin                            
               /*Comentario : Insercion del Asiento de Ajuste*/                            
           Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                            
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,                            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
        CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC,
        ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
               @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                            
               'CAR', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S', 1.000000,                       
        @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC, 'S',
        @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
               If @@ERROR != 0                                 
                 Begin                             
                   Close CU_TXMVTO_CNTB_I33_1                            
                   Deallocate CU_TXMVTO_CNTB_I33_1                            
                   Rollback Tran                             
                   Return                            
        End                            
               Select @VNNU_SECU = @VNNU_SECU + 1                            
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - abs(ROUND(@VNTO_AJUS,2))                                
             End /* If @VNTO_AJUS < 0      */                            
         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLES > 0 )  */                                  
                            
       If( @VNTO_SALD_ORIG = 0.00 ) And ( @VNTO_SALD_SOLES > 0.00 )                            
         Begin                            
         Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLES,2)                            
           If @VNTO_AJUS > 0.00                            
             Begin                            
               Select @VNTO_CNTA_PERD = @VNTO_CNTA_PERD + ROUND(@VNTO_AJUS,2)                                
               /*Comentario : Insercion del Asiento de Ajuste*/                            
               Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                            
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,                            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
               CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC, 
               ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
               @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                        
               'ABO', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S',1.000000,                       
        @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC, 'S', 
        @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
               If @@ERROR != 0                                 
                 Begin                             
 Close CU_TXMVTO_CNTB_I33_1                            
                   Deallocate CU_TXMVTO_CNTB_I33_1                            
                   Rollback Tran                             
                   Return                            
                 End                            
               Select @VNNU_SECU = @VNNU_SECU + 1                            
             End                            
         End /*If( @VNTO_SALD_ORIG = 0 ) And ( @VNTO_SALD_SOLES > 0 )  */                             
                            
       If( @VNTO_SALD_ORIG = 0.00 ) And ( @VNTO_SALD_SOLES < 0.00 )                            
         Begin                            
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLES,2)                            
           If @VNTO_AJUS < 0.00                            
             Begin                            
               /* Insercion del Asiento de Ajuste*/                            
               Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                            
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,                            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
        CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, FE_DOCU_VENC,
         ST_DIFE_MAYO, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO,                            
               @INNU_MESE, @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                            
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                            
               'CAR', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S', 1.000000,                       
        @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, @CDFE_DOCU_VENC, 'S', 
        @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@CSCO_ORDE_SERV)                            
               If @@ERROR != 0                                 
                 Begin                             
  Close CU_TXMVTO_CNTB_I33_1      
                   Deallocate CU_TXMVTO_CNTB_I33_1                            
                 Rollback Tran                             
            Return                            
                 End                            
               Select @VNNU_SECU = @VNNU_SECU + 1                            
        Select @VNTO_CNTA_GANA = @VNTO_CNTA_GANA - abs(ROUND(@VNTO_AJUS,2))                            
             End                             
         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLES > 0 )  */                            
     End    /*If @VNTO_AJUS != 0 */                           
                          
 End /*FIN  -- EVALUA QUE SOLO GRABE PARA LAS CANCELACIONES */                          
                           
 Fetch CU_TXMVTO_CNTB_I33_1 Into @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,                             
 @CNIM_ORIG_SALD, @CNIM_SOLE_SALD, @CDFE_ASTO_0001, @CDFE_DOCU_VENC,@CSCO_ORDE_SERV                             
                            
 End /* While @@Fetch_status =0 */                            
 Close CU_TXMVTO_CNTB_I33_1                            
 Deallocate CU_TXMVTO_CNTB_I33_1                            
                            
/* Insercion de cuenta de pTrdida en diferencia de cambio      */                            
 If @VNTO_CNTA_PERD != 0.00              
   Begin                                  
     If @VNTO_CNTA_PERD > 0.00                            
       Begin                            
         Select @VSTI_OPER = 'CAR'                            
       End                                    
     Else If @VNTO_CNTA_PERD < 0.00                            
       Begin                            
         Select @VSTI_OPER = 'ABO'                            
       End                            
                            
     /*Comentario : Insercion del Asiento de Ajuste*/                            
     Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,                            
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                            
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,                             
     NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
     CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, ST_DIFE_MAYO, CO_USUA_MODI, 
     FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,                            
     @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @VSCO_CNTA_PERD, @VSTI_AUXI_DCPE, @VSCO_AUXI_DCPE, NULL, NULL,                            
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_CNTA_PERD), 'AJUST x DIF.CAMBIO',                            
     'APR', '  ', 'N', 'N', 'S', 1.000000, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, 
     @ISCO_CNTA_EMPR, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@VSCO_ORDE_DCPE)                            
     If @@ERROR != 0                            
       Begin                             
         Rollback Tran                            
         Return                            
       End                            
     Select @VNNU_SECU = @VNNU_SECU + 1                            
   End                            
                            
/* Insercion de cuenta de pTrdida en diferencia de cambio Pendiente */                            
 If @VNTO_PERD_PEND != 0.00                            
   Begin                                  
     If @VNTO_PERD_PEND > 0.00                            
       Begin                            
         Select @VSTI_OPER = 'CAR'                            
       End                           
     Else If @VNTO_PERD_PEND < 0.00                            
       Begin                            
         Select @VSTI_OPER = 'ABO'                            
       End                            
                            
     /*Comentario : Insercion del Asiento de Ajuste*/                            
     Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,                            
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                            
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,                             
     NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
     CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, ST_DIFE_MAYO, CO_USUA_MODI, 
     FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,                            
     @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @VSCO_CNTA_PERD, @VSTI_AUXI_DCPE, @VSCO_AUXI_DCPE, NULL, NULL,                            
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_PERD_PEND), 'AJUST x DIF.CAMBIO',                            
     'APR', '  ', 'N', 'N', 'S', 1.000000, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, 'S', 
     @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@VSCO_ORDE_DCPE)                            
     If @@ERROR != 0                            
       Begin                             
         Rollback Tran                            
         Return                            
       End                            
     Select @VNNU_SECU = @VNNU_SECU + 1                             
   End                            
                            
/* Insercion de cuenta de ganancia en diferencia de cambio */                            
 If @VNTO_CNTA_GANA != 0.00                            
   Begin                            
     If @VNTO_CNTA_GANA > 0.00                            
       Begin                            
         Select @VSTI_OPER = 'CAR'                            
       End                                    
     Else If @VNTO_CNTA_GANA < 0.00                            
       Begin                            
         Select @VSTI_OPER = 'ABO'                            
       End                            
     /*Comentario :Insercion del Asiento de Ajuste*/                            
     Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,NU_MESE,                            
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                            
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,                            
     NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
     CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, ST_DIFE_MAYO, CO_USUA_MODI, 
     FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)        
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,                            
     @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @VSCO_CNTA_GANA, @VSTI_AUXI_DCGA, @VSCO_AUXI_DCGA, NULL, NULL,                            
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_CNTA_GANA), 'AJUST x DIF.CAMBIO',                            
     'APR', '  ', 'N', 'N', 'S', 1.000000, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, 
    @ISCO_CNTA_EMPR, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@VSCO_ORDE_DCGA)                            
     If @@ERROR != 0                        
       Begin                             
         Rollback Tran                             
   Return                            
       End                            
     Select @VNNU_SECU = @VNNU_SECU + 1                          
   End                            
                            
/* Insercion de cuenta de ganancia en diferencia de cambio */                            
 If @VNTO_GANA_PEND != 0.00                            
   Begin                            
     If @VNTO_GANA_PEND > 0.00                            
       Begin                            
         Select @VSTI_OPER = 'CAR'                            
       End                                    
     Else If @VNTO_GANA_PEND < 0.00                            
       Begin                            
         Select @VSTI_OPER = 'ABO'                            
       End                      
     /*Comentario :Insercion del Asiento de Ajuste*/                            
     Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,NU_MESE,                            
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                            
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,                            
     NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR,                       
     CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG, NU_SECU_ORIG, CO_CNTA_ORIG, ST_DIFE_MAYO, CO_USUA_MODI, 
     FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA,CO_ORDE_SERV)                            
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @VSCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,                            
     @VSNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @VSCO_CNTA_GANA, @VSTI_AUXI_DCGA, @VSCO_AUXI_DCGA, NULL, NULL,                            
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_GANA_PEND), 'AJUST x DIF.CAMBIO',                            
     'APR', '  ', 'N', 'N', 'S', 1.000000, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @ISNU_ASTO, @INNU_SECU, @ISCO_CNTA_EMPR, 'S', 
    @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA,@VSCO_ORDE_DCGA)                            
     If @@ERROR != 0              
       Begin                             
  Rollback Tran                             
         Return                            
       End                            
     Select @VNNU_SECU = @VNNU_SECU + 1                          
   End                            
                            
    Select @VNNU_SECU = @VNNU_SECU - 1                      
                            
    -- LLAMA A GESTION EN CASO QUE CTA PERDIDA X DIF TENGA AMARRE                      
    Exec SP_TXMVTO_CNTB_I34 @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB,                            
    @VSCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE, @VSNU_ASTO, '', 'COP', @VNNU_SECU, @ISCO_USUA,@IDFE_USUA                        
            
     Select @VSNU_ASTO = Max(NU_ASTO)            
     From TXMVTO_CNTB            
     Where CO_EMPR = @ISCO_EMPR And                            
     NU_CNTB_EMPR = @INNU_CNTB_EMPR And                            
     CO_UNID_CNTB = @ISCO_UNID_CNTB And                            
     CO_OPRC_CNTB = @VSCO_OPRC_CNTB and                            
     NU_ANNO = @INNU_ANNO And                            
     NU_MESE = @INNU_MESE             
                          
     Update TCFECH_PROC                            
     Set NU_ULTI_ASTO = Convert(Int, @VSNU_ASTO)                            
     Where CO_EMPR = @ISCO_EMPR And                            
     NU_CNTB_EMPR = @INNU_CNTB_EMPR And                            
     CO_UNID_CNTB = @ISCO_UNID_CNTB And                            
     CO_OPRC_CNTB = @VSCO_OPRC_CNTB and                            
     NU_ANNO = @INNU_ANNO And                      
     NU_MESE = @INNU_MESE                             
                            
     If @@ERROR != 0                                 
     Begin           
         Rollback Tran                             
     Return                            
       End                    
                  
End  /*FIN SI SALDO ES CERO */                            
                              
Commit Transaction                             
                   
Return                            
/*-------------------------------- Fin -----------------------------*/




GO
